﻿#region << 文 件 说 明 >>

/*----------------------------------------------------------------
// 文件名称：TopModel
// 创 建 者：杨程
// 创建时间：2022/1/29 16:15:55
// 文件版本：V1.0.0
// ===============================================================
// 功能描述：
//
//
//----------------------------------------------------------------*/

#endregion

namespace Vampirewal.Core.Models;

/// <summary>
/// 模型基类
/// </summary>
public class TopModel : ObservableObject
{
    private bool _IsChecked;

    /// <summary>
    /// 是否选中
    /// 标识当前行数据是否被选中
    /// </summary>
    [SugarColumn(IsIgnore = true)]
    [JsonIgnore]
    public bool IsChecked
    {
        get
        {
            return _IsChecked;
        }
        set
        {
            SetProperty(ref _IsChecked, value);
        }
    }

    #region 公共方法

    /// <summary>
    /// 获取当前model的BillID
    /// </summary>
    /// <returns></returns>
    public virtual object GetBillID()
    {
        var idpro = this.GetType().GetProperties().Where(x => x.Name.ToLower() == "BILLID").FirstOrDefault();
        var id = idpro.GetValue(this);
        return id;
    }

    /// <summary>
    /// 获取当前model的DtlId
    /// </summary>
    /// <returns></returns>
    public virtual object GetDtlId()
    {
        var idpro = this.GetType().GetProperties().Where(x => x.Name.ToLower() == "DTLID").FirstOrDefault();
        var id = idpro.GetValue(this);
        return id;
    }

    /// <summary>
    /// 获取父ID
    /// </summary>
    /// <returns></returns>
    public virtual object GetParentID()
    {
        var idpro = this.GetType().GetProperties().Where(x => x.Name.ToLower() == "ParentId").FirstOrDefault();
        var id = idpro.GetValue(this) ?? "";
        return id;
    }

    #endregion
}